package com.laima.basic.service.impl;

import com.laima.basic.Exception.BusinessException;
import com.laima.basic.model.SysDept;
import com.laima.basic.service.SysDeptService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @program: backend-server
 * @description: 部门实现层
 * @author: T
 * @create: 2021-03-26 09:12
 **/

@Service
public class SysDeptServiceImpl implements SysDeptService {

    @Autowired
    private SysDeptService sysDeptService;

    /**
     * 查询部门管理数据列表
     *
     * @param sysDept
     * @return
     */
    @Override
    public List<SysDept> selectBySysDept(SysDept sysDept) {
        return sysDeptService.selectBySysDept(sysDept) ;
    }

    /**
     * 根据部门ID查询信息
     *
     * @param deptId
     * @return
     */
    @Override
    public SysDept selectDeptById(Long deptId) {
        return sysDeptService.selectDeptById(deptId);
    }

    /**
     * 新增部门
     *
     * @param sysDept
     * @return
     */
    @Override
    public int insertSysDept(SysDept sysDept) {
        //父级查询并获取
        SysDept dept=sysDeptService.selectDeptById(sysDept.getParentId());
        //判断部门状态是否为null
        if (dept.getStatus()==null){
            throw  new BusinessException("部门已停用，请换部门添加");
        }
        return sysDeptService.insertSysDept(sysDept);
    }



    /**
     * 修改部门信息
     *
     * @param dept
     * @return
     */
    @Override
    public int updateDept(SysDept dept) {
        //获取下拉父级id
        SysDept sysDept=sysDeptService.selectDeptById(dept.getParentId());
        //获取页面存在的id
        SysDept sysDepts=sysDeptService.selectDeptById(dept.getDeptId());


        return 0;
    }

    /**
     * 修改所在部门的父级部门状态
     *
     * @param dept
     */
    @Override
    public void updateDeptStatus(SysDept dept) {
        //设置修改人
        dept.setUpdateBy(dept.getUpdateBy());
        //按照部门id查询
        sysDeptService.selectDeptById(dept.getDeptId());
        //进行修改父级部门状态
        sysDeptService.updateDeptStatus(dept);
    }

    /**
     * 删除部门
     *
     * @param deptId
     * @return
     */
    @Override
    public int deleteDeptById(Long deptId) {
        return sysDeptService.deleteDeptById(deptId);
    }
}
